1. Field of the Invention
The present invention relates to fibre channel systems, and more particularly, to managing frame flow.
2. Background of the Invention
Fibre channel is a set of American National Standard Institute (ANSI) standards, which provide a serial transmission protocol for storage and network protocols such as HIPPI, SCSI, IP, ATM and others. Fibre channel provides an input/output interface to meet the requirements of both channel and network users.
Fibre channel supports three different topologies: point-to-point, arbitrated loop and fibre channel fabric. The point-to-point topology attaches two devices directly. The arbitrated loop topology attaches devices in a loop. The fibre channel fabric topology attaches host systems directly to a fabric, which are then connected to multiple devices.
A fibre channel switch is a multi-port device where each port manages a simple point-to-point connection between itself and its attached system. Each port can be attached to a server, peripheral, I/O subsystem, bridge, hub, router, or even another switch.
Fibre channel switches use memory buffers to hold frames received and sent across a network. Associated with these buffers are credits, which are the number of frames that a buffer can hold per fabric port.
Fibre channel devices use two primitive signals over a single link for indicating events at a transmitting port. The primitive signals are “IDLE” and R_RDY (or VC-RDY for virtual lanes). The Idle primitive keeps a link active while there is no data to send. The R_RDY primitive is used for buffer-to-buffer flow control. A buffer at a port that is ready to accept a frame transmits the R_RDY primitive to signal to a transmitting port that it is ready to receive a frame. Per Fibre Channel standards, each R_RDY primitive must be preceded and followed by two Idle primitives.
Fibre channel switches may use “virtual lanes” (VL) (or virtual channels) to transmit frames. In the VL environment, the VC_RDY primitive performs the same function as the R_RDY primitive.
Fibre channel standards (for example, FC-FC-2 available at the website for T11.org, incorporated herein by reference in its entirety) define the rules for frame transmission/flow control. Frames are transmitted with at least 6 (six) ordered sets between them. Ordered sets are special 40-bit codes and include Idle and R_RDY primitives.
Transmitting multiple R_RDYs between frames can cause the average number of ordered sets between frames to be greater than 6. This can reduce throughput, especially if many small frames are transmitted and is hence undesirable.
Therefore, there is a need for a method and system to better manage frame flow in general and R_RDYs in particular.